Harmony Chain Funds Analytics via Rosetta

Chain Data Source

All data used by this script was gathered using the Harmony Rosetta-CLI fork using the parse:supply command.

The script was written quickly and is NOT optimal for parsing the data, nor is it memory friendly. If you wish to run this script yourself, you have been warned.

Loading Data

Data Directory Structure

Your DATA_DIR should be organized in the following directory tree to run the code as is.

.
├── s0
│   └── parse
│       ├── parse_db_s0
│       │   └── parse-supply
│       │       └── 942e235983792e8b72b23cc0dd2d49940e1528c81e9058f4e8412429a9860dfb
│       │           ├── 000813.vlog
│       │           ├── 000838.sst
│       │           ├── KEYREGISTRY
│       │           └── MANIFEST
│       ├── parse_last_seen_accounts_<2021-01-18\ 01:57:08.172922727\ +0000\ UTC\ m=+0.046201073>
│       ├── parse_output_<2021-01-18\ 01:57:08.172902904\ +0000\ UTC\ m=+0.046181262>0
│       ├── parse_output_<2021-01-18\ 01:57:08.172902904\ +0000\ UTC\ m=+0.046181262>1
│       ├── parse_output_<2021-01-18\ 01:57:08.172902904\ +0000\ UTC\ m=+0.046181262>10
│       └── parse_output_<2021-01-18\ 01:57:08.172902904\ +0000\ UTC\ m=+0.046181262>99
├── s1
│   └── parse
│       ├── parse_db_s1
│       │   └── parse-supply
│       │       └── 6b948d461136a919989fbc8252c99bab80b07aed31a3ae39fb25ac9261eb1cca
│       │           ├── 000791.vlog
│       │           ├── 000814.sst
│       │           ├── KEYREGISTRY
│       │           └── MANIFEST
│       ├── parse_last_seen_accounts_<2021-01-18\ 01:57:17.570517136\ +0000\ UTC\ m=+0.049003351>
│       ├── parse_output_<2021-01-18\ 01:57:17.570491926\ +0000\ UTC\ m=+0.048978151>0
│       ├── parse_output_<2021-01-18\ 01:57:17.570491926\ +0000\ UTC\ m=+0.048978151>1
│       └── parse_output_<2021-01-18\ 01:57:17.570491926\ +0000\ UTC\ m=+0.048978151>99
├── s2
│   └── parse
│       ├── parse_db_s2
│       │   └── parse-supply
│       │       └── 8e94105e15f12b879263055c007bdb1040f4f8c17a626d3727b5a0633d016e58
│       │           ├── 000803.vlog
│       │           ├── 000828.sst
│       │           ├── KEYREGISTRY
│       │           └── MANIFEST
│       ├── parse_last_seen_accounts_<2021-01-18\ 01:57:35.646789168\ +0000\ UTC\ m=+0.051387060>
│       ├── parse_output_<2021-01-18\ 01:57:35.64673466\ +0000\ UTC\ m=+0.051332553>0
│       ├── parse_output_<2021-01-18\ 01:57:35.64673466\ +0000\ UTC\ m=+0.051332553>1
│       ├── parse_output_<2021-01-18\ 01:57:35.64673466\ +0000\ UTC\ m=+0.051332553>10
│       ├── parse_output_<2021-01-18\ 01:57:35.64673466\ +0000\ UTC\ m=+0.051332553>100
│       └── parse_output_<2021-01-18\ 01:57:35.64673466\ +0000\ UTC\ m=+0.051332553>99
└── s3
    └── parse
        ├── parse_db_s3
        │   └── parse-supply
        │       └── d11142a30812bbe65b8b2cda16a895ccdebbe71844c54df0cd812481e345244b
        │           ├── 000797.vlog
        │           ├── 000822.sst
        │           ├── KEYREGISTRY
        │           └── MANIFEST
        ├── parse_last_seen_accounts_<2021-01-18\ 01:57:45.885611423\ +0000\ UTC\ m=+0.061823480>
        ├── parse_output_<2021-01-18\ 01:57:45.885573374\ +0000\ UTC\ m=+0.061785449>0
        ├── parse_output_<2021-01-18\ 01:57:45.885573374\ +0000\ UTC\ m=+0.061785449>1
        ├── parse_output_<2021-01-18\ 01:57:45.885573374\ +0000\ UTC\ m=+0.061785449>10
        └── parse_output_<2021-01-18\ 01:57:45.885573374\ +0000\ UTC\ m=+0.061785449>99

Data Format

data["blocks"] is a list of Block JSON objects (stored as a dict) order by block index.

The Block object looks like the following:

{
  "block_identifier": {
    "index": 0,
    "hash": "0xb4d158b82ac8a653c42b78697ab1cd0c6a0d9a15ab3bc34130f0b719fb174d2a"
  },
  "block_epoch": 0,
  "approx_block_rewards_so_far": 0,
  "approx_circulating_supply_so_far": 1.26e+28,
  "block_rewards": 0,
  "total_amount_deducted_from_accounts": 0,
  "total_amount_credited_from_accounts": 1.26e+28,
  "number_of_contracts_created": 0,
  "number_of_transactions": 1,
  "number_of_accounts": 1,
  "amount_transferred": 0,
  "cross_shard_amount_received": 0,
  "cross_shard_amount_sent": 0,
  "gas_fees": 0,
  "approx_number_of_unique_accounts_so_far": 1
}

Data Format

data["blocks"] is a list of Block JSON objects (stored as a dict) order by block index.

The Block object looks like the following:

{
  "block_identifier": {
    "index": 0,
    "hash": "0xb4d158b82ac8a653c42b78697ab1cd0c6a0d9a15ab3bc34130f0b719fb174d2a"
  },
  "block_epoch": 0,
  "approx_block_rewards_so_far": 0,
  "approx_circulating_supply_so_far": 1.26e+28,
  "block_rewards": 0,
  "total_amount_deducted_from_accounts": 0,
  "total_amount_credited_from_accounts": 1.26e+28,
  "number_of_contracts_created": 0,
  "number_of_transactions": 1,
  "number_of_accounts": 1,
  "amount_transferred": 0,
  "cross_shard_amount_received": 0,
  "cross_shard_amount_sent": 0,
  "gas_fees": 0,
  "approx_number_of_unique_accounts_so_far": 1
}

Basic Stats Utils

High-level Data

Visualization

Utils

Graph Drawing

Graphs

Graph Details

Each data point is an average or sum (depending on data) over the SAMPLE number of blocks before (and including) the indicated block index.

CSV Export